It is common for an integrated circuit to comprise a processor and a plurality of peripheral devices all incorporated onto the same chip. The processor executes software that controls the behaviour of the processor with respect to the peripherals, and in particular the way in which the peripherals are accessed.
For example, such integrated circuits may include peripherals such as an UART (Universal Asynchronous Receiver Transmitter) peripheral for transmitting and receiving data asynchronously via the serial port of a computer, a PTI (Programmable Transport Interface) peripheral used to demultiplex DVB standard transport data streams, a timer, an FDMA (Flexible Direct Memory Access) peripheral for moving data from memory to memory and an MPEG (Moving Picture Experts Group) peripheral. The MPEG peripheral may handle, for example, digital video functions according to the MPEG standard and decode frames in a compressed MPEG2 video stream into pictures suitable for display.
The integrated circuits themselves may be suitable for a wide variety of applications such as, for example, in consumer electronics (e.g., set-top boxes, DVD players, handheld computers and mobile telephones).
FIG. 1 shows a conventional integrated circuit device (or chip) 10. Integrated circuit 10 comprises a plurality of peripheral devices 8 such as those described above, and a processor 2 for executing software. Processor 2 is operable, upon executing an instruction to access a peripheral, to output a corresponding peripheral access address onto address bus 4. Address bus 4 connects between Processor 2 and peripheral address decoder 6. Peripheral address decoder 6 is operable to allow processor 2 to access peripheral 8 corresponding to the address appearing on bus 4. In this way, peripheral address decoder 6 maps access addresses onto respective peripherals 8 of integrated circuit 10. The correlation between the access addresses and their respective peripherals 8 is referred to as an “address map”.
Such devices, however, are susceptible to cloning. FIG. 1A shows printed circuit board (PCB) 1 on which is mounted integrated circuit 10 running software 12. If it is possible for an unscrupulous party to obtain information relating to the design of PCB 1, then it may be possible to produce a cloned PCB 1a that functions in a substantially similar manner to the original PCB 1. If integrated circuit 10a can be sourced, ostensibly for use with software from another vendor, or in another market, copy 14 of the required software can be obtained, allowing a fully operational replica of the product to be produced without the authorization of the software vendor. It is difficult to physically prevent a PCB from being cloned.
There is therefore a need to provide some kind of obstacle to the cloning process. In particular, there is a need to prevent copying of software on, for example, unauthorized hardware platforms.